package com.myself.community.utils;

import com.alibaba.fastjson.JSONObject;
import org.apache.commons.lang3.StringUtils;
import org.springframework.util.DigestUtils;

import java.util.Map;
import java.util.UUID;

/**
 * 生成随机名称
 */
public class CommunityUtil {

    // 生成随机字符串：UUID生成字符串，同时除去 “-”
    public static String generateUUID() {
        return UUID.randomUUID().toString().replaceAll("-", "");
    }

    // MD5加密
    // hello -> abc123def456：无法反向解密，但还是可以自己写算法慢慢解密，因为相同字符串产生的是相同加密串
    // hello + 3e4a8 -> abc123def456abc ：为加密数据再加密一层随机字符
    public static String md5(String key) {
        if (StringUtils.isBlank(key)) {
            return null;
        }
        return DigestUtils.md5DigestAsHex(key.getBytes());
    }

    /**
     * 制定响应JSON数据:响应
     * @param code  返回给客户端执行状态
     * @param msg   返回提示信息
     * @param map   返回的业务数据
     * @return
     */
    public static String getJSONString(int code, String msg, Map<String, Object> map) {
        JSONObject json = new JSONObject();
        json.put("code", code);
        json.put("msg", msg);
        //遍历数据存入
        if (map != null) {
            for (String key : map.keySet()) {
                json.put(key, map.get(key));
            }
        }
        return json.toJSONString();
    }
    //没有业务数据时
    public static String getJSONString(int code, String msg) {
        return getJSONString(code, msg, null);
    }
    //只有处理状态
    public static String getJSONString(int code) {
        return getJSONString(code, null, null);
    }

}
